// 10.命名空间
/**
 * 1. 为什么使用命名空间
 *    它可作为附加信息来区分不同库中相同名称的函数、类、变量等。使用了命名空间即定义了上下文。
 * 2. 定义命名空间
 *      语法:
 *        namespace namespace_name{
 *          代码声明
 *        }
 * 3. 使用带有命名空间的变量或函数
 *      语法：
 *        name::xxx
 *      注意
 *        全局变量或函数使用 ::xxx
 * 
 * 4. using指令
 *    语法
 *      using namespace space_name;
 *      using space_name::xxx; // 使用命名空间里的特定项目
 * 
 * 5. 不连续的命名空间
 *      命名空间里的项目可以分散在不同文件里。
 *          下面的命名空间定义可以是定义一个新的命名空间，也可以是为已有的命名空间增加新的元素：
            namespace namespace_name {
              // 代码声明
            }
 * 6. 嵌套的命名空间      
          namespace namespace_name1 {
            // 代码声明
            namespace namespace_name2 {
                // 代码声明
            }
          }    
      
      using namespace namespace_name1;
 *    using namespace namespace_name1::namespace_name2;
 *    using namespace_name1::xxx;
 *    using namespace_name1::namespace_name2::xxx;
 *     
*/
#include <iostream>

#define __mark 81

#if 51 == __mark

/**
 * #51
*/
int main(void)
{
  
  printf("-----------end-------------\n");
  return 0;
}
#elif 81 == __mark
/**
 * #81
*/

int main(void)
{

  printf("-----------end-------------\n");
  return 0;
}
#endif